import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import routes from './routes'
import { getToken } from '@/utils/auth'

const router = createRouter({
	history: createWebHistory(import.meta.env.VITE_BASE_URL),
	// history: createWebHashHistory(import.meta.env.VITE_APP_API_BASEURL),
	routes
})

NProgress.configure({
	// 动画方式
	easing: 'ease',
	// 是否显示加载ico
	showSpinner: false,
	// 自动递增间隔
	trickleSpeed: 200,
	// 初始化时的最小百分比
	minimum: 0.3
})

// 导航守卫
router.beforeEach((to, from, next) => {
	// console.log('to===', to)
	// console.log('from===', from)
	// console.log('next===', next)
	// 页面加载进度条
	if (to.name !== from.name) {
		NProgress.start()
	}
	// 检查目标路由是否需要认证
	if (to.matched.some((record) => record.meta.requiresAuth)) {
		// 这里替换为你的认证检查逻辑
		const token = getToken()
		window.document.title = to.meta.title? `${to.meta.title}` + '｜ 调研后台管理系统': '调研系统'
		if (!token) {
			// 未登录则重定向到登录页面
			next({
				path: '/login',
				query: { redirect: to.fullPath } // 保存目标路径以便登录后重定向
			})
		} else {
			next() // 已登录则继续
		}
	} else {
		next() // 不需要认证的路由直接放行
	}
})

router.afterEach(() => {
	NProgress.done()
})
export default router
